package DataStorage;

import java.util.List;

import HibernateSQLite.java.model.MesureText;

public interface IMesureTextDAO extends IGenericDAO<MesureText, Long>{
	
	public boolean isExist(String N_serie, String chemin, String N_cordon, String Vue,String flag_mesure);
	public boolean isExist_L1_mesure(MesureText mesureText);
	public boolean isExist_L2_mesure(MesureText mesureText);
	public boolean isExist_P1_mesure(MesureText mesureText);
	public boolean isExist_P2_mesure(MesureText mesureText);
	public boolean isExist_A_mesure(MesureText mesureText);
	public boolean isExist_B_mesure(MesureText mesureText);
	//pour tester une mesure
	public boolean isExistFlag_mesure(String flag_mesure);
	//pour tester une essieu
	public boolean isExist(String N_serie,String flag_mesure);
	
	public MesureText getMesureText(long MesureText_id);
	public MesureText getMesureText(String N_serie, String flag_mesure);
	public MesureText getMesureText(String N_serie, String chemin, String N_cordon, String Vue, String flag_mesure);
	public String getImagePath(String N_serie,String chemin, String N_cordon, String Vue,String flag_mesure);
	
	public List<MesureText> getAllListMesureText();
	public List<MesureText> getListMesureTextByFlag_mesure(String flag_mesure);
	public List<MesureText> getListMesureTextByN_serie(String N_serie,String flag_mesure);
	public List<MesureText> getListMesureTextByChemin(String chemin, String flag_mesure); 
	public List<MesureText> getListMesureTextByN_cordon(String N_cordon,String flag_mesure);
	public List<MesureText> getListMesureTextByVue(String Vue,String flag_mesure); 
	public List<MesureText> getListMesureTextByL1_mesure(String L1_mesure,String flag_mesure);
	public List<MesureText> getListMesureTextByL2_mesure(String L2_mesure,String flag_mesure);
	public List<MesureText> getListMesureTextByP1_mesure(String P1_mesure,String flag_mesure);
	public List<MesureText> getListMesureTextByP2_mesure(String P2_mesure,String flag_mesure);
	public List<MesureText> getListMesureTextByA_mesure(String a_mesure,String flag_mesure);
	public List<MesureText> getListMesureTextByB_mesure(String b_mesure,String flag_mesure);
	
	
	//Function
	public int getNumberMesureText(String flag_mesure);
	public int getNumberN_cordonByEssieu(String N_serie,String flag_mesure);
	public int getNumberVueByN_cordon(String N_serie, String N_cordon,String flag_mesure);
	//public List<String> getDistinctListN_serie(String flag_mesure);
	public List<String> getDistinctListN_cordon(String N_serie,String flag_mesure);
	
	
	
	public void saveMesureText(	String N_serie,		String chemin, 
								String N_cordon, 	String Vue, 
								String L1_mesure,	String L2_mesure, 
								String P1_mesure,	String P2_mesure, 
								String a_mesure, 	String b_mesure, 
								String image_path,  int  flag_mesure);
	
	//pour delete tous les mesure texts par une essieu
	public void deleteMesureTexts(String N_serie,String flag_mesure);
	//pour delete tous les mesure texts par une mesure
	public void deleteMesureTexts(String flag_mesure);
	
}
